Fix CUDA_HOME cmake arg handling in devicelib #49
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello. Currently the build fails if
/usr/local/cudadoesn't exist in the system, even if-DCUDA_HOMEis set. It seems to be due to improper handling of cmake options, as cmake args from the main project aren't visible/properly passed along tonvshmem_device_project, so it ends up always defaulting to/usr/local/cuda. Moreover,NVSHMEM_DEVICELIB_CUDA_HOMEis defined and set in bothNVSHMEMEnv.cmakeandsrc/device/CMakeLists.txt- I don't think this was intentional.This PR makes the following changes:
CUDAToolkit_Rootis now passed from the main proj tonvshmem_device_projectasCUDA_HOMECUDA_HOMEandNVSHMEM_DEVICELIB_CUDA_HOMEare used as regular args instead of env args innvshmem_device_projectDEVICELIBhandling fromNVSHMEMEnv.cmake. Left a default option with empty path so it's visible at configure time.Tested with
cmake -B ... -DCUDA_HOME=...andCUDA_HOME cmake -B ...